var identity = 'the window';

let object = {
  identity: 'my object',
  getIdentityFunc1() {
    return function() {
      console.log(this);
      return this.identity;
    };
  },
  getIdentityFunc2() {
    console.log(this); // object
    return () => {
      return this.identity;
    };
  }
};

console.log(object.getIdentityFunc1()());
console.log(object.getIdentityFunc2()());

// var len = 10;

// function fn() {
//   console.log(this); // 浏览器 是window  node环境下 没有
//   return this.len + 1; // 浏览器 11  node this.len 是undefined 加1 变成NaN
// }
// var obj = {
//   len: 5,
//   test1: function() {
//     // console.log(this); // object
//     return fn();
//   }
// };

// obj.test2 = fn;
// console.log(obj.test1());  // 11
// console.log(fn() === obj.test2()); // false

// var name = 'wzy';
// function fa() {
//   var name = 'wzy1';
//   function fb() {
//     console.log(this.name); // wzy
//   }
//   fb();
// }
// fa();

// var name = 'wzy';
// var obj = {
//   name: 'wzy1',
//   fb() {
//     console.log(this.name);// wzy1
//   }
// }
// window.obj.fb();

// var name = 'wzy';
// var obj = {
//   name: 'wzy1',
//   fb() {
//     return function() {
//       console.log(this.name);// wzy
//     }
//   }
// }
// var f = obj.fb();
// f();

// var name = 'wzy';
// var obj = {
//   fb() {
//     console.log(this.name);//undefined
//   }
// }
// obj.fb()